package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 抽奖活动对象 tb_active
 * 
 * @author ruoyi
 * @date 2025-07-30
 */
public class TbActive extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 活动ID */
    private Long activeId;

    /** 活动名称 */
    @Excel(name = "活动名称")
    private String activeName;

    /** 开始时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date beginTime;

    /** 截止时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /** 参与用户;参与用户：0全部1部分 */
    @Excel(name = "参与用户;参与用户：0全部1部分")
    private Long userFlag;

    /** 活动免费抽奖次数 */
    @Excel(name = "活动免费抽奖次数")
    private Long freeTimes;

    /** 中奖名单;中奖名单：0公开1不公开 */
    @Excel(name = "中奖名单;中奖名单：0公开1不公开")
    private Long winFlag;

    /** 中奖记录;中奖记录：0公开1不公开 */
    @Excel(name = "中奖记录;中奖记录：0公开1不公开")
    private Long winRecord;

    /** 活动状态;活动状态：0开启1停止 */
    @Excel(name = "活动状态;活动状态：0开启1停止")
    private Long activeStatus;

    /** 活动规则 */
    @Excel(name = "活动规则")
    private String activeContent;

    public void setActiveId(Long activeId) 
    {
        this.activeId = activeId;
    }

    public Long getActiveId() 
    {
        return activeId;
    }

    public void setActiveName(String activeName) 
    {
        this.activeName = activeName;
    }

    public String getActiveName() 
    {
        return activeName;
    }

    public void setBeginTime(Date beginTime) 
    {
        this.beginTime = beginTime;
    }

    public Date getBeginTime() 
    {
        return beginTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setUserFlag(Long userFlag) 
    {
        this.userFlag = userFlag;
    }

    public Long getUserFlag() 
    {
        return userFlag;
    }

    public void setFreeTimes(Long freeTimes) 
    {
        this.freeTimes = freeTimes;
    }

    public Long getFreeTimes() 
    {
        return freeTimes;
    }

    public void setWinFlag(Long winFlag) 
    {
        this.winFlag = winFlag;
    }

    public Long getWinFlag() 
    {
        return winFlag;
    }

    public void setWinRecord(Long winRecord) 
    {
        this.winRecord = winRecord;
    }

    public Long getWinRecord() 
    {
        return winRecord;
    }

    public void setActiveStatus(Long activeStatus) 
    {
        this.activeStatus = activeStatus;
    }

    public Long getActiveStatus() 
    {
        return activeStatus;
    }

    public void setActiveContent(String activeContent) 
    {
        this.activeContent = activeContent;
    }

    public String getActiveContent() 
    {
        return activeContent;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activeId", getActiveId())
            .append("activeName", getActiveName())
            .append("beginTime", getBeginTime())
            .append("endTime", getEndTime())
            .append("userFlag", getUserFlag())
            .append("freeTimes", getFreeTimes())
            .append("winFlag", getWinFlag())
            .append("winRecord", getWinRecord())
            .append("activeStatus", getActiveStatus())
            .append("activeContent", getActiveContent())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
